OPERATE_MODEL_CONFIG = {
    'WEB_PORT': 8839,
    'classifymodel_path': './output/Qwen2/checkpoint-48',  # 指令识别模型路径
    'ner_model_path': './output/Qwen2-NER/checkpoint-57',  # ner实体识别模型路径
    'train_dataset_path': 'all.jsonl',  # 语料库路径
    'train_jsonl_new_path': 'new_all_ner.jsonl',  # 处理过的语料
    'test_dataset_path': 'all_test.jsonl',  # 测试语料库路径
    'test_jsonl_new_path': 'new_all_test_train.jsonl',  # 测试处理过的语料
    'model_id_path': 'qwen/Qwen2-0.5B-Instruct',  # 模型id 对应modelscope的路径
    'model_dir_path': './qwen/Qwen2-0___5B-Instruct'  # 模型下载目录
}

NER_SCHEMA = [
    {'intentId': 0, 'schema': ['未定义']},
    {'intentId': 1, 'schema': ['任务编号']},
    {'intentId': 2, 'schema': ['工作站名称']},
    {'intentId': 3, 'schema': ['订单编号']},
    {'intentId': 4, 'schema': ['产品']},
    {'intentId': 5, 'schema': ['优先级']},
    {'intentId': 6, 'schema': ['SO交付时间']},
    {'intentId': 9, 'schema': ['TSK排程结束时间']},
    {'intentId': 11, 'schema': ['TASK状态']},
    {'intentId': 12, 'schema': ['MO状态']},
    {'intentId': 13, 'schema': ['TSK排程开始时间']},
    {'intentId': 14, 'schema': ['TSK排程结束时间']},
    {'intentId': 15, 'schema': ['TSK实际开始时间']},
    {'intentId': 16, 'schema': ['TSK实际结束时间']},
    {'intentId': 17, 'schema': ['TSK延期时间']},
    {'intentId': 19, 'schema': ['MO重排前预计交付时间']},
    {'intentId': 20, 'schema': ['MO重排后预计交付时间']},
    {'intentId': 21, 'schema': ['MO重排差异']},
    {'intentId': 22, 'schema': ['MO延期时间']}
]

itemMapping = {
    '表名': 'tableName',
    '任务编号': 'taskCode',
    '工作站名称': 'workstationName',
    '订单编号': 'workorderCode',  # 订单编号
    '工作站编号': 'workstationCode',
    '工序编号': 'processCode',
    '物料编号': 'itemCode',
    '班组编号': 'teamCode',
    '状态': 'status',
    '排程时间': 'startTime',  # 开始时间
    '结束时间': 'endTime',
    '合同交付时间': 'deliveryTime',
    '任务开始时间': 'realStartTime',
    '任务结束时间': 'realEndTime',
    '优先级': 'productionPriority',
    '产品': 'productName',
    'TASK状态': 'taskStatus',
    'MO状态': 'moStatus',  # workOrderStatus
    'TSK排程开始时间': 'taskStartTime',
    'TSK排程结束时间': 'taskEndTime',
    'TSK实际开始时间': 'taskActualStartTime',  # TSK实际开始时间
    'TSK实际结束时间': 'taskActualEndTime',  # TSK实际结束时间
    'TSK延期时间': 'taskExtensionTime',
    'SO交付时间': 'salesOrdersDeliveryTime',
    'MO重排前预计交付时间': 'moEstimatedBeforeDeliveryTime',
    'MO重排后预计交付时间': 'moEstimatedAfterDeliveryTime',
    'MO重排差异': 'moRearrangementDifference',  # MO重排差异
    'MO延期时间': 'moExtensionTime'  # MO延期时间
}

taskStatusMapping = {
    '已排产': 'PLANNED',
    '已排': 'PLANNED',
    '已锁定': 'LOCKED',
    '锁定': 'LOCKED',
    '已下发': 'PUBLISHED',
    '生产中': 'INPRODUCTION',
    '已完成': 'COMPLETED'
}

workOrderStatusMapping = {  # moStatus
    '待排产': 'TOPLAN',
    '待排': 'TOPLAN',
    '已排产': 'PLANNED',
    '已排': 'PLANNED',
    '已锁定': 'LOCKED',
    '锁定': 'LOCKED',
    '已下发': 'PUBLISHED',
    '生产中': 'INPRODUCTION',
    '已完成': 'COMPLETED'
}

answerMapping = {
    0: '您好，我是AIPS，专注于生产排产相关操作的人工智能大模型。请问您有相关指令需要操作吗？谢谢。',
    1: '已根据您的要求完成查询，请预览。',
    2: '已根据您的要求完成查询，请预览。',
    3: '已根据您的要求完成查询，请预览。',
    4: '已根据您的要求完成查询，请预览。',
    5: '已根据您的要求完成查询，请预览。',
    6: '已根据您的要求完成查询，请预览。',
    9: '好的，马上执行。',  # 执行结束：已根据您的要求完成重排，请预览。确认无误后点击发布，或取消重排。
    11: '已根据您的要求完成查询，请预览。',
    12: '已根据您的要求完成查询，请预览。',
    13: '已根据您的要求完成查询，请预览。',
    14: '已根据您的要求完成查询，请预览。',
    15: '已根据您的要求完成查询，请预览。',
    16: '已根据您的要求完成查询，请预览。',
    17: '已根据您的要求完成查询，请预览。',
    19: '已根据您的要求完成查询，请预览。',
    20: '已根据您的要求完成查询，请预览。',
    21: '已根据您的要求完成查询，请预览。',
    22: '已根据您的要求完成查询，请预览。',
}
